'the following is from BVT test set

8917:write and read attributes to/from different keys
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123456key1,027890123456key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_OpenKeyTokens(1 Context Index,017890123456key1,027890123456key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(1 Context Index,AttributeName2,2 long token type,300 token value)
TestDRM_SST_GetTokenValue(1 Context Index,AttributeName2,2 long token type,300 token value)
TestDRM_SST_CloseKey(1 Context Index,Dump)

10414:enumerate key while there is only one second key 
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123452key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_OpenEnumerator(1 secure type,017890123452key1, Dump, Dump)
TestDRM_SST_EnumNext(Dump,Dump,0 size, 027890123452key2)
TestDRM_SST_EnumNext(Dump,Dump,0 size, 027890123452key2)=-2147024637(0x80070103 DRM_E_NOMORE)

'by design the raw dat can not be retrieved by get token key method
10426:get data directly from the store. The data were saved by key tokens.
TestDRM_SST_Initialize(0);
TestDRM_SST_SetData(0 Context Index,017890123452key1,027890123451key2,123456789011Password,1 secure type,Dump,MyData)
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123451key2,123456789011Password,0 secure flag,1 secure type,Dump)=-2147172310(0X8004C02A)
'TestDRM_SST_CloseKey(0 Context Index,Dump)

8898:delete a key  
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123451key1,027890123451key2,123456789011Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_OpenKeyTokens(1 Context Index,017890123452key1,027890123452key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_DeleteKey(0 Context Index,1 secure type,017890123451key1,027890123451key2,Dump)
TestDRM_SST_CloseKey(1 Context Index,Dump)

-------------------BVT ends here--------------------------

11603: generate global store password and use this password for open key token
TestDRM_SST_Initialize(0);
TestDRM_SST_CreateGlobalStorePassword
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123456key1,027890123456key2,Password,1 secure flag,2 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)

11604: generate license state password and use this password for open key token
TestDRM_SST_Initialize(0);
TestDRM_SST_CreateLicenseStatePassword(1234567890123LID)
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123456key1,027890123456key2,Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
 
11605: set and get data from locked data section 
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenAndLockSlot(Dump, 1 secure type, 017890123456key1,027890123456key2,Password,1 secure flag,0 Context Index,NULL) 
TestDRM_SST_SetLockedData(0 Context Index,"This is my data 1234567890+=-_)(*&^%$#@!")
TestDRM_SST_GetLockedData(0 Context Index,"This is my data 1234567890+=-_)(*&^%$#@!")
TestDRM_SST_CloseLockedSlot(0 Context Index)
 

8915:write and read an attribute value with long attribute name
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123456key1,027890123456key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890,2 long token type,100 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
 
8916:write and read an attribute value with special attribute name
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123456key1,027890123456key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,A,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,A,2 long token type,100 token value)
TestDRM_SST_SetTokenValue(0 Context Index,1,2 long token type,200 token value)
TestDRM_SST_GetTokenValue(0 Context Index,1,2 long token type,200 token value)
TestDRM_SST_SetTokenValue(0 Context Index,$,2 long token type,300 token value)
TestDRM_SST_GetTokenValue(0 Context Index,$,2 long token type,300 token value)
TestDRM_SST_SetTokenValue(0 Context Index,OK,2 long token type,400 token value)
TestDRM_SST_SetTokenValue(0 Context Index,&,2 long token type,500 token value)
TestDRM_SST_GetTokenValue(0 Context Index,&,2 long token type,500 token value)
TestDRM_SST_GetTokenValue(0 Context Index,OK,2 long token type,400 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)

8912:write and read multiple attribute values 
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123456key1,027890123456key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName3,2 long token type,300 token value)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName4,2 long token type,400 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName4,2 long token type,400 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName3,2 long token type,300 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)

8909:write and read an attribute value at different contexts
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123451key1,027890123451key2,123456789011Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName5,2 long token type,500 token value)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_OpenKeyTokens(1 Context Index,017890123452key1,027890123452key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(1 Context Index,AttributeName2,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(1 Context Index,AttributeName2,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName5,2 long token type,500 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_CloseKey(1 Context Index,Dump)

8897:Open multiple existed keys
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123451key1,027890123451key2,123456789011Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_OpenKeyTokens(1 Context Index,017890123452key1,027890123452key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_CloseKey(1 Context Index,Dump)
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123451key1,027890123451key2,123456789011Password,0 secure flag,1 secure type,Dump)
TestDRM_SST_OpenKeyTokens(1 Context Index,017890123452key1,027890123452key2,123456789012Password,0 secure flag,1 secure type,Dump)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_CloseKey(1 Context Index,Dump)
 
8895:Add multiple keys with different secure type
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123451key1,027890123451key2,123456789011Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_OpenKeyTokens(1 Context Index,017890123452key1,027890123452key2,123456789012Password,1 secure flag,2 secure type,Dump)
TestDRM_SST_OpenKeyTokens(2 Context Index,017890123453key1,027890123453key2,123456789013Password,1 secure flag,4 secure type,Dump)
TestDRM_SST_OpenKeyTokens(3 Context Index,017890123453key1,027890123454key2,123456789014Password,1 secure flag,5 secure type,Dump)
'TestDRM_SST_OpenKeyTokens(4 Context Index,017890123453key1,027890123455key2,123456789015Password,1 secure flag,6 secure type,Dump)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_CloseKey(1 Context Index,Dump)
TestDRM_SST_CloseKey(2 Context Index,Dump)
TestDRM_SST_CloseKey(3 Context Index,Dump)
'TestDRM_SST_CloseKey(4 Context Index,Dump)
 
10410:get all data when there is one attribute of this key. 
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123452key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123452key2,123456789012Password,0 secure flag,1 secure type,Dump)
TestDRM_SST_GetAllData(0 Context Index, NULL, 0 data size,Dump)
TestDRM_SST_CloseKey(0 Context Index,Dump)
 
10411:get all data when there is none attribute of this key. 
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123452key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123452key2,123456789012Password,0 secure flag,1 secure type,Dump)
TestDRM_SST_GetAllData(0 Context Index, NULL, 0 data size,Dump)
TestDRM_SST_CloseKey(0 Context Index,Dump)

10412:get all data when there are two attributes of this key. 
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123452key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123452key2,123456789012Password,0 secure flag,1 secure type,Dump)
TestDRM_SST_GetAllData(0 Context Index, NULL, 0 data size,Dump)
TestDRM_SST_CloseKey(0 Context Index,Dump)

10413:get all data when there are multiple keys 
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123452key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_OpenKeyTokens(1 Context Index,017890123453key1,027890123453key2,123456789013Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName3,2 long token type,300 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName3,2 long token type,300 token value)
TestDRM_SST_CloseKey(1 Context Index,Dump)
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123452key2,123456789012Password,0 secure flag,1 secure type,Dump)
TestDRM_SST_GetAllData(0 Context Index, NULL, 0 data size,Dump)
TestDRM_SST_CloseKey(0 Context Index,Dump)

10424:get all data when there is one attribute of this key and the second key is NULL. 
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,NULL,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,NULL,123456789012Password,0 secure flag,1 secure type,Dump)
TestDRM_SST_GetAllData(0 Context Index, NULL, 0 data size,Dump)
TestDRM_SST_CloseKey(0 Context Index,Dump)

 
10415:enumerate key while there are multiple second keys 
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123451key2,123456789011Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123452key2,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName2,2 long token type,1000 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName2,2 long token type,1000 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_OpenEnumerator(1 secure type,017890123452key1, Dump, Dump)
TestDRM_SST_EnumNext(Dump,Dump,0 size, NULL)
TestDRM_SST_EnumNext(Dump,Dump,0 size, NULL)
TestDRM_SST_EnumNext(Dump,Dump,0 size, 027890123452key2)=-2147024637(0x80070103 DRM_E_NOMORE)

10416:enumerate key while the second key is NULL
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123451key2,123456789011Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName1,2 long token type,100 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1, NULL,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_OpenEnumerator(1 secure type,017890123452key1, Dump, Dump)
TestDRM_SST_EnumNext(Dump,Dump,0 size, NULL)
TestDRM_SST_EnumNext(Dump,Dump,0 size, NULL)
TestDRM_SST_EnumNext(Dump,Dump,0 size, 027890123452key2)=-2147024637(0x80070103 DRM_E_NOMORE)

'10419 is also covered
10420:get data directly from the store
TestDRM_SST_Initialize(0);
TestDRM_SST_SetData(0 Context Index,017890123451key1,027890123451key2,123456789011Password,1 secure type,Dump,MyData1)
TestDRM_SST_GetData(0 Context Index,017890123451key1,027890123451key2,123456789011Password,1 secure type,Dump,Dump,Dump,MyData1)
TestDRM_SST_SetData(0 Context Index,017890123452key1,027890123452key2,123456789012Password,2 secure type,Dump,MyData2)
TestDRM_SST_GetData(0 Context Index,017890123452key1,027890123452key2,123456789012Password,2 secure type,Dump,Dump,Dump,MyData2)
TestDRM_SST_SetData(0 Context Index,017890123453key1,027890123453key2,123456789013Password,3 secure type,Dump,MyData3)
TestDRM_SST_GetData(0 Context Index,017890123453key1,027890123453key2,123456789013Password,3 secure type,Dump,Dump,Dump,MyData3)
TestDRM_SST_SetData(0 Context Index,017890123454key1,027890123454key2,123456789014Password,4 secure type,Dump,MyData4)
TestDRM_SST_GetData(0 Context Index,017890123454key1,027890123454key2,123456789014Password,4 secure type,Dump,Dump,Dump,MyData4)
 
'by design the token key can not be retrieved by get raw data method
10425:get data directly from the store. The data were saved by key tokens.
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1,027890123451key2,123456789011Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)
TestDRM_SST_GetData(0 Context Index,017890123452key1,027890123451key2,123456789011Password,1 secure type,Dump,Dump,Dump,200)=-2147172310(0X8004C02A)
 
10421:get data directly from the store while the second key is NULL
TestDRM_SST_Initialize(0);
TestDRM_SST_SetData(0 Context Index,017890123451key1,NULL,123456789011Password,1 secure type,Dump,MyData1)
TestDRM_SST_GetData(0 Context Index,017890123451key1,NULL,123456789011Password,1 secure type,Dump,Dump,Dump,MyData1)
TestDRM_SST_SetData(0 Context Index,017890123452key1,NULL,123456789012Password,2 secure type,Dump,MyData2)
TestDRM_SST_GetData(0 Context Index,017890123452key1,NULL,123456789012Password,2 secure type,Dump,Dump,Dump,MyData2)
TestDRM_SST_SetData(0 Context Index,017890123453key1,NULL,123456789013Password,3 secure type,Dump,MyData3)
TestDRM_SST_GetData(0 Context Index,017890123453key1,NULL,123456789013Password,3 secure type,Dump,Dump,Dump,MyData3)
TestDRM_SST_SetData(0 Context Index,017890123454key1,NULL,123456789014Password,4 secure type,Dump,MyData4)
TestDRM_SST_GetData(0 Context Index,017890123454key1,NULL,123456789014Password,4 secure type,Dump,Dump,Dump,MyData4)

 
'***************************************************************
'Negative test cases for Secure Store  

10417:open enumerator while the eType is invalid 
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenEnumerator(1 secure type,017890123452key1, Dump, Dump)
TestDRM_SST_OpenEnumerator(2 secure type,017890123452key1, Dump, Dump)
TestDRM_SST_OpenEnumerator(3 secure type,017890123452key1, Dump, Dump)
TestDRM_SST_OpenEnumerator(4 secure type,017890123452key1, Dump, Dump)
TestDRM_SST_OpenEnumerator(5 secure type,017890123452key1, Dump, Dump)
TestDRM_SST_OpenEnumerator(6 secure type,017890123452key1, Dump, Dump)
  
10418:open the key token while the second key is NULL 
TestDRM_SST_Initialize(0);
TestDRM_SST_OpenKeyTokens(0 Context Index,017890123452key1, NULL,123456789012Password,1 secure flag,1 secure type,Dump)
TestDRM_SST_SetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_GetTokenValue(0 Context Index,AttributeName2,2 long token type,200 token value)
TestDRM_SST_CloseKey(0 Context Index,Dump)

10422:get data directly from the store when the eType is invalid
TestDRM_SST_Initialize(0);
TestDRM_SST_SetData(0 Context Index,017890123452key1,027890123451key2,123456789011Password,1 secure type,Dump,MyData)
TestDRM_SST_GetData(0 Context Index,017890123452key1,027890123451key2,123456789011Password,5 secure type,Dump,Dump,Dump,MyData)=-2147287038(0X80030002)
TestDRM_SST_GetData(0 Context Index,017890123452key1,027890123451key2,123456789011Password,1 secure type,Dump,Dump,Dump,MyData)

10423:set data directly from the store when eType is invalid
TestDRM_SST_Initialize(0);
TestDRM_SST_SetData(0 Context Index,017890123452key1,027890123451key2,123456789011Password,9 secure type,Dump,MyData)=-2147024809(0X80070057)
TestDRM_SST_SetData(0 Context Index,017890123452key1,027890123451key2,123456789011Password,1 secure type,Dump,MyData)
TestDRM_SST_GetData(0 Context Index,017890123452key1,027890123451key2,123456789011Password,1 secure type,Dump,Dump,Dump,MyData)
 




  